package com.ruoyi.examination.mapper;

import java.util.List;
import com.ruoyi.examination.domain.ExamRecord;
import com.ruoyi.examination.dto.ExamRecordDto;
import com.ruoyi.examination.vo.ExamRecordSelectVo;
import org.apache.ibatis.annotations.Param;

/**
 * 考试记录Mapper接口
 * 
 * @author hcc
 * @date 2025-10-21
 */
public interface ExamRecordMapper 
{
    /**
     * 查询考试记录
     * 
     * @param examRecordId 考试记录主键
     * @return 考试记录
     */
    public ExamRecord selectExamRecordByExamRecordId(String examRecordId);

    /**
     * 查询考试记录列表
     * 
     * @param examRecord 考试记录
     * @return 考试记录集合
     */
    public List<ExamRecord> selectExamRecordList(ExamRecord examRecord);

    /**
     * 新增考试记录
     * 
     * @param examRecord 考试记录
     * @return 结果
     */
    public int insertExamRecord(ExamRecord examRecord);

    /**
     * 修改考试记录
     * 
     * @param examRecord 考试记录
     * @return 结果
     */
    public int updateExamRecord(ExamRecord examRecord);

    /**
     * 删除考试记录
     * 
     * @param examRecordId 考试记录主键
     * @return 结果
     */
    public int deleteExamRecordByExamRecordId(String examRecordId);

    /**
     * 批量删除考试记录
     * 
     * @param examRecordIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteExamRecordByExamRecordIds(String[] examRecordIds);

    /**
     * 查询考试列表
     * @param examRecordSelectVo
     * @return
     */
    public List<ExamRecordDto> selectExamList(ExamRecordSelectVo examRecordSelectVo);

    /**
     * 查询班级考试记录列表
     * lqx
     */
    public List<ExamRecordDto> getExamListByClassId(ExamRecordSelectVo examRecordSelectVo);

    /**
     * 获取考试记录信息
     * lqx
     */
    public List<ExamRecord> getExamRecordInfoById(@Param("trainingClassId") String trainingClassId,
                                              @Param("studentId") String studentId,
                                              @Param("trainingProjectId") String trainingProjectId);

    /**
     * 获取考试记录信息
     * @param trainingClassId
     * @param studentId
     * @return
     */
    public List<ExamRecord> getExamRecordInfo(@Param("trainingClassId") String trainingClassId, @Param("studentId") String studentId);

    //通过学员id查询经营性成绩
    public List<ExamRecord> selectExamListByStudentId(@Param("studentId") String studentId);
}
